{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "300\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc0d0def4a8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import matplotlib\n",
    "\n",
    "\n",
    "def plot_loss(file_name):\n",
    "    train_loss = []   # This is actually psnr\n",
    "    val_loss = []     # This is actually loss\n",
    "    counter = 0\n",
    "    with open(file_name) as txtfile:\n",
    "         for row in txtfile:\n",
    "            curt_row = row.split(' ')\n",
    "            if counter >= 0:\n",
    "                if len(curt_row) >= 4 : \n",
    "                    if curt_row[3] == 'Train' :\n",
    "#                         print(curt_row[-1])\n",
    "                        train_loss.append(float(curt_row[-1][:-2]))\n",
    "                    if curt_row[3] == 'Eval':\n",
    "#                         print(curt_row[-1])\n",
    "                        val_loss.append(float(curt_row[-1][:-2]))\n",
    "            counter = counter + 1\n",
    "                    \n",
    "    print(len(train_loss))\n",
    "    train_loss = train_loss[15:]\n",
    "    val_loss = val_loss[15:]\n",
    "    plt.plot(val_loss)\n",
    "    plt.plot(train_loss)\n",
    "\n",
    "\n",
    "\n",
    "log1 = 'train.log'\n",
    "log2 = 'old/train.log'\n",
    "\n",
    "plot_loss(log1)\n",
    "# plot_loss(log2)\n",
    "\n",
    "plt.legend(['Val Loss','Train Loss'])\n",
    "plt.xlabel('Number of epochs')\n",
    "plt.ylabel('Loss(MSE)')\n",
    "plt.title('SRCNN Avg Loss vs Num of Epochs')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
